package com.ssy.lingxi.system.controller;

import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.system.dto.request.CommonIdDTO;
import com.ssy.lingxi.system.entity.PageTemplate;
import com.ssy.lingxi.system.model.dto.template.*;
import com.ssy.lingxi.system.service.PageTemplateService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;

/**
 * @menu 页面定制 - 模板管理
 * @author fhj
 * @version 2.0.0
 * @date 2020/7/20
 */
@RestController
@RequestMapping("/page/template")
public class PageTemplateController {

    @Resource
    private HttpServletRequest request;
    @Resource
    private PageTemplateService pageTemplateService;

    @ApiOperation(value = "新增")
    @PostMapping("/add")
    public Wrapper<Void> add(@RequestBody @Valid PageTemplateAddDTO dto) {
        return pageTemplateService.add(dto, request);
    }

    @ApiOperation(value = "修改")
    @PostMapping("/update")
    public Wrapper<Void> update(@RequestBody @Valid PageTemplateUpdateDTO dto) {
        return pageTemplateService.update(dto, request);
    }

    @ApiOperation(value = "所有")
    @GetMapping("/all")
    public Wrapper<List<PageTemplate>> all(@Valid PageTemplateAllDTO dto) {
        return pageTemplateService.all(dto);
    }

    @ApiOperation(value = "详情")
    @GetMapping("/details")
    public Wrapper<PageTemplate> details(@Valid CommonIdDTO dto) {
        return pageTemplateService.details(dto);
    }

    @ApiOperation(value = "使用")
    @PostMapping("/use")
    public Wrapper<Void> use(@RequestBody @Valid PageTemplateUseDTO dto) {
        return pageTemplateService.use(dto, request);
    }

    @ApiOperation(value = "正在使用中的模板")
    @GetMapping("/inUseTemplate")
    public Wrapper<PageTemplate> inUseTemplate(@Valid PageTemplateInUseDTO dto) {
        return pageTemplateService.inUseTemplate(dto);
    }
}
